using System;
using System.Collections.Generic;
using System.Text;

namespace ChEngine
{
    
    public interface IEngine
    {
        //IMoveGeneratorOld MoveGenerator{get;set;}
        void Initialize(BitBoardDriver board,Side engineColor,int Ply);
        event EventHandler WaitOpponentForMove;
        event EventHandler EngineMove;
        void StartPlay();
        void Move(string move);
        string LastMove { get;}
        IBoardEvaluator BoardEvaluator { get;set;}
        Side EngineSide { get;set;}
        Side MovingSide { get;set;}
        BitBoardDriver Board {get;set;}
        //IOpeningBook OpeningBook { get;set;}
        void Break();
        event EventHandler<EndGameEventArgs> EndGame;
        event EventHandler<InfoMessageEventArgs> Message;
    }
}
